The present invention relates to unequal error protection block codes and more particularly to a generator matrix for an unequal error protection Reed-Muller code and a decoder for such code.
Error protection codes are well known in systems which transmit information from one point to another or which record data on a storage medium for later playback. For example, pictures taken by a space probe must be transmitted back to Earth over long distances and with low power. The signals are therefore subject to interference by noise sources which cause the signal received on Earth to be different from the transmitted signal. By proper encoding of the signal before transmission, it is possible to reconstruct the original signal from the corrupted signal actually received. In similar fashion, information written onto a storage medium such as a compact disk is subject to errors in the writing process, errors caused by damage and wear to the disk and errors in the reading process. These errors are like noise sources in a transmission channel. But, by encoding the information before writing it to the storage medium, a certain level of errors can be corrected when the information is read from the disk.
Information to be error protected is typically digitized and transmitted or stored as a series of binary digits, bits, represented as ones and zeros. Each unit or word of data is usually represented by a fixed series of bits, e.g. eight or sixteen bits. Error codes generally add bits to the length of the data words to form code words which are transmitted or stored. For example, a repetition code may transmit or store a single “1” as four “1”s, which forms a 4,1 code (four bit codeword representing one bit of data). A decoder which receives a four bit word containing three “1”'s and one “0” would assume that one error occurred and four “1”s were transmitted and would decode the received code word as a single data bit of “1”.
Coding increases the reliability of transmitted data. But, coding increases the bandwidth needed to transmit a given amount of data. Stated differently, coding reduces the amount of data which can be transmitted with a given bandwidth. Much effort has been made to design codes which most efficiently use available bandwidth and achieve the best level of error protection.
In real systems, all data does not need the same level of error protection. For example, in error protecting voice or music, it is more important to ptotect the most significant bits than the least significant bits. In some forms of video compression, images are broken into blocks which are represented by a number of parameters, one of which is the scale factor which applies to all other bits in the block. Any error in the scale factor causes an error in all other bits in the block. Thus, it is more important to protect the scale bits than the other bits. In such cases, unequal error protection codes can be used to optimize the coding system by using relatively more bandwidth to protect the more important bits and relatively less to protect less important bits.
The Reed-Muller codes are known to be efficient error protecting codes. However, when signals are encoded with a standard Reed-Muller generator matrix and decoded using standard algebraic decoding, the bit error rate for all bits is the same. It would be desirable to have a generator matrix for using Reed-Muller code to encode data with unequal error protection and a decoder which efficiently decodes the signals while maintaining the unequal error protection.